package com.jeronimo.eko.core.beans;

import edu.umd.cs.findbugs.annotations.SuppressWarnings;

@Encodable(messageClassId=2323,versionId=66)
@SuppressWarnings(value={"Bx","Dm","UwF","HE","USM"})
public class BeanTestEnum {

	public enum TestEnum {
		val1,
		val2,
		val3
	};
	
	
	int i;
	
	TestEnum enum1;
	TestEnum enum2;
	TestEnum[] enumArray;
	
	public void initTest1() {
		i=1234;
		enum1 = TestEnum.val2;
		enum2 = TestEnum.val3;
		enumArray = new TestEnum[] {TestEnum.val1,TestEnum.val2,TestEnum.val3,TestEnum.val1,TestEnum.val3,TestEnum.val2};
	}
	
	public void initTest2() {
		i=1234;
		enum1 = TestEnum.val2;
		enum2 = TestEnum.val3;
		enumArray = null;
	}
	
	public int getI() {
		return i;
	}
	@EncodableProperty
	public void setI(int i) {
		this.i = i;
	}
	public TestEnum getEnum1() {
		return enum1;
	}
	@EncodableProperty
	public void setEnum1(TestEnum enum1) {
		this.enum1 = enum1;
	}
	public TestEnum getEnum2() {
		return enum2;
	}
	@EncodableProperty
	public void setEnum2(TestEnum enum2) {
		this.enum2 = enum2;
	}
	public TestEnum[] getEnumArray() {
		return enumArray;
	}
	@EncodableProperty
	public void setEnumArray(TestEnum[] enumArray) {
		this.enumArray = enumArray;
	}
	
	
	@Override
	public boolean equals(Object obj) {
		if ((obj instanceof BeanTestEnum)==false) return false;
		BeanTestEnum c= (BeanTestEnum) obj;
		if (c.i!=i) return false;
		if (c.enum1!=enum1) return false;
		if (c.enum2!=enum2) return false;
		if ((enumArray==null && c.enumArray==null)==false) {
			if (enumArray==null) return false;
			if (c.enumArray==null) return false;
			if (enumArray.length!=c.enumArray.length) return false;
			for (int i=0;i<enumArray.length;i++) if (enumArray[i]!=c.enumArray[i]) return false;
		}
		return true;
	}
	

	
}
